package com.example.addemoone.kotlin

// 1.定义数据类
// 学生数据类
data class Student(
    val id: Int,    // 学号，不可变
    var name: String,   // 姓名，可变
    var age: Int,   // 年龄，可变
    val className: String,  // 专业名称，不可变
    var score: Int = 60     // 成绩，可变，默认60分
)

fun main() {
    val student1 = Student(1001, "张三", 18, "软件工程")

    // 1.自动生成了 toString() 方法
    println(student1)

    // 2.自动生成了 equals() 方法
    /*数据类的 == 对比的是内容是否一致，而不是内存地址*/
    val student2 = Student(1001, "张三", 18, "软件工程")
    println(student1 == student2)

    // 3.自动生成了 hashCode() 方法
    println(student1.hashCode())

    // 4.自动生成了 copy() 方法
    val student3 = student1.copy(name = "李四")
    println(student3)

    // 5.解构声明
    val (id, name, age, className, score) = student1
    println("id: $id, name: $name, age: $age, className: $className, score: $score")

    // 6.自动生成了 componentN() 方法
}